package br.fatec.model.bll;

import br.fatec.model.dao.Venda_ProdutoDao;
import br.fatec.model.entity.SaidaEstoque;
import br.fatec.model.entity.Venda_Produto;

public class Venda_ProdutoBll {
	private Venda_ProdutoDao vendaProdutoDao;
	private EstoqueBll estoqueBll;
	private SaidaEstoqueBll saidaEstoqueBll;

	public Venda_ProdutoBll() {
		this.vendaProdutoDao = new Venda_ProdutoDao();
		this.estoqueBll = new EstoqueBll();
		this.saidaEstoqueBll = new SaidaEstoqueBll();
	}

	public void cadastrar(Venda_Produto vendaProduto)
			throws Exception {
		SaidaEstoque saidaEstoque = new SaidaEstoque();
		saidaEstoque.setProduto(vendaProduto.getCodigo().getProduto());
		saidaEstoque.setMotivoSaida(SaidaEstoque.MotivoSaida.Fabriacao);
		saidaEstoque.setQuantidade(vendaProduto.getQuantidade());
		saidaEstoque.setCriadoPor(vendaProduto.getCodigo().getVenda().getCriadoPor());
		
		saidaEstoqueBll.verificarEstoque(saidaEstoque);
		saidaEstoqueBll.cadastrar(saidaEstoque);
		
		vendaProdutoDao.cadastrar(vendaProduto);
	}

	public void excluir(Venda_Produto vendaProduto)
			throws Exception {
		vendaProdutoDao.excluir(vendaProduto);
		
		estoqueBll.adicionarEstoque(vendaProduto.getCodigo().getProduto().getEstoque(), vendaProduto.getQuantidade());
	}
}
